//重排字符串
import java.util.*;

public class Main{
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int len = in.nextInt();
        char[] tmp = in.next().toCharArray();
        
        int[] arr = new int[26];
        for (int i = 0; i < len; i++) {
            arr[tmp[i]-'a']++;
        }
        
        int max[] = new int[2];
        maxcount(arr, max);
        if (max[1] > (len+1)/2) {
            System.out.println("no");
            return;
        }
        
        for (int i = 0; i < len; i+=2) {
            if (max[1] == 0) {
                maxcount(arr, max);
            }
            tmp[i] = (char)(max[0]+'a');
            max[1]--;
        }
        if (max[1] == 0) {
            maxcount(arr, max);
        }
        int i = 1;
        while (max[1] != 0 && i < len) {
            tmp[i] = (char)(max[0]+'a');
            max[1]--;
            if (max[1] == 0) {
                maxcount(arr, max);
            }
            i+=2;
        }
        System.out.println("yes");
        for (i = 0; i < len; i++) {
            System.out.print(tmp[i]);
        }
    }
    public static void maxcount(int[] arr, int max[]) {
        int maxIndex = 0;
        for (int i = 1; i < 26; i++) {
            if (arr[maxIndex] < arr[i]) {
                maxIndex = i;
            }
        }
        max[0] = maxIndex;
        max[1] = arr[maxIndex];
        arr[maxIndex] = 0;
    }
}
//最长无重复子数组
import java.util.*;


public class Solution {

    public int maxLength (int[] arr) {
        // write code here
        int l = 0;
        int r = 0;
        int maxlen = 0;
        Set<Integer> set = new HashSet<>();
        while (r < arr.length) {
            if (l == r || !set.contains(arr[r])) {
                set.add(arr[r]);
                r++;
                maxlen = Math.max(r-l, maxlen);
            } else {
                set.remove(arr[l]);
                l++;
            }
        }
        return maxlen;
    }
}
//牛牛冲钻五
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int t = in.nextInt();
        while (t-- > 0) { // 注意 while 处理多个 case
            int n = in.nextInt();
            int k = in.nextInt();     
            char[] arr = new char[n];
            arr = in.next().toCharArray(); 
            int[] dp = new int[n];
            dp[0] = arr[0] == 'W' ? 1 : -1;
            dp[1] = arr[1] == 'W' ? 1+dp[0] : dp[0]-1;
            for (int i = 2; i < n; i++) {
                if (arr[i] == 'W') {
                    if (arr[i-1] == arr[i-2] && arr[i-1] == 'W') {
                        dp[i] = dp[i-1]+k;
                    } else {
                        dp[i] = dp[i-1] + 1;
                    }
                } else {
                    dp[i] = dp[i-1]-1;
                }
            }
            System.out.println(dp[n-1]);
        }
    }
}